/*
 * Copyright (c) 2012-2020 MIRACL UK Ltd.
 *
 * This file is part of MIRACL Core
 * (see https://github.com/miracl/core).
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* Fixed Data in ROM - Field and Curve parameters */


package org.miracl.core.BLS48286;

public class ROM
{

// Base  bits= 60
public static final long[] Modulus= {0xE7502B9209C345BL,0xF641C4528E352D9L,0xC8C7E1AC04809AAL,0xD7B0201C8145A86L,0x2972C531EC7BL};
public static final long[] R2modp= {0x61F9539D245AF2CL,0xA1991A6E51410D8L,0x1603A99FC661885L,0xC8A2CE485CD7822L,0xD54A6F0B25EL};
public static final long[] ROI= {0xE7502B9209C345AL,0xF641C4528E352D9L,0xC8C7E1AC04809AAL,0xD7B0201C8145A86L,0x2972C531EC7BL};
public static final long[] SQRTm3= {0xCD7A472E6524A9CL,0x535B8141D328998L,0x758989A7084EB33L,0xD870A3222987B99L,0x2971C25478F5L};
public static final long[] CRu= {0x5A6539603773F7BL,0x24CEA2CA30AEE39L,0x1F28B5A98667A6FL,0xD810619F5566B10L,0x297243C332B8L};
public static final long MConst= 0x227E5D8F6EA242DL;
public static final long[] Fra= {0xEA8695F3FC90183L,0xC556BED1BD3E936L,0xD903EF0268F09A7L,0x114E8AEC2FE0043L,0xD9417EC522CL};
public static final long[] Frb= {0xFCC9959E0D332D8L,0x30EB0580D0F69A2L,0xEFC3F2A99B90003L,0xC66195305165A42L,0x1BDEAD459A4FL};
public static final long[] TWK= {0xA7D9735C3D05DCCL,0x1997054542A70B9L,0xBCCBD14CBAA2C6AL,0x33519F37367221FL,0x1D20EDEF448AL};

//*** rom curve parameters *****
// Ate Bits= 17
// G2 Table size= 20
public static final int CURVE_Cof_I= 62958;
public static final long[] CURVE_Cof= {0xF5EEL,0x0L,0x0L,0x0L,0x0L};
public static final int CURVE_B_I= 10;
public static final long[] CURVE_B= {0xAL,0x0L,0x0L,0x0L,0x0L};
public static final long[] CURVE_Order= {0xFC411B2FD612C81L,0x98F28822F29701FL,0xB262A94FBE4FE22L,0x9EB01535FC9EDE6L,0x86BCL};
public static final long[] CURVE_Gx= {0xC897EA3095D59E0L,0xDD97475CEFBA15DL,0x544741A4E84D19L,0xDB88FB476C0F04CL,0x6972433D120L};
public static final long[] CURVE_Gy= {0xEEF69F970ABEB43L,0x237CE6B580E3E2EL,0x3308DEE53B0AC1FL,0x6E2D78897F979AAL,0x2038E40A1E65L};
public static final long[] CURVE_HTPC= {0x1L,0x0L,0x0L,0x0L,0x0L};

public static final long[] CURVE_Bnx= {0xF5EFL,0x0L,0x0L,0x0L,0x0L};
public static final long[] CURVE_Pxaaa= {0x8416349856106B5L,0xCC3B1CECC4CC0FEL,0xA952DACAFD9F51AL,0x71D2A27B04CAEB7L,0x22ACFD40531CL};
public static final long[] CURVE_Pxaab= {0xDECD1BD896D1A55L,0x427718553891DA9L,0xC8A32592FEF56B9L,0x85A58D250C873E4L,0x18DBB9996B5CL};
public static final long[] CURVE_Pxaba= {0x8811A3A67D7A35EL,0x9FAF4E8CC58A603L,0xC19A506B52AF41CL,0x7C317AE2BDE1D4DL,0xA8292D5DE0AL};
public static final long[] CURVE_Pxabb= {0x28E8520C2F023E8L,0xF191B5CF33D2D0AL,0xE725CF5DFB62D89L,0x94CD8BBB1F92E81L,0x202BE0D55FACL};
public static final long[] CURVE_Pxbaa= {0x8B98D5B8F14CB9BL,0x1A17D62FE2554D8L,0xC71EF6D551B96A2L,0xF76284B52259647L,0x17527369A1E3L};
public static final long[] CURVE_Pxbab= {0xBF6B286CB60DD54L,0xB8532B9371A2443L,0x638D54D7E6BE9C0L,0x59F346C42D3760DL,0x1101EA485E9DL};
public static final long[] CURVE_Pxbba= {0x20A5B0AB9D776DAL,0xA657276121135FAL,0xDE41458BE4ADABAL,0xE41FCEF60E4AAD4L,0xF606FCE261FL};
public static final long[] CURVE_Pxbbb= {0xF3FE23828B50A8EL,0x77554EF2609CEB5L,0x72CE1923A1EC9A5L,0x19566C5168C0002L,0x1F0B30E6920DL};
public static final long[] CURVE_Pyaaa= {0x26CD5FD67E988BEL,0x1FE5EF8E978BCEEL,0x39B2544F14E8B3L,0xCD557C7F38694FFL,0x21F0F8CDA962L};
public static final long[] CURVE_Pyaab= {0x778566D0DF11B92L,0x83331801EBC5E08L,0xB840129F0DB40CBL,0xD7A943A25E15861L,0xE01C1FEC6FEL};
public static final long[] CURVE_Pyaba= {0x47CFA67ABFDD06AL,0x4BCDAB08CFE5925L,0x55AE0A98D2EB8E6L,0xBEA2D9EBB35EFF2L,0x12C0FFB8C3D6L};
public static final long[] CURVE_Pyabb= {0xB3DDFD3788A47F4L,0x195F9A36106B328L,0x4B28538511F157DL,0xFF3A1DDBDD352B3L,0x156831E55BDFL};
public static final long[] CURVE_Pybaa= {0xB6EDB7345E39E77L,0x4C8190FF9538C4CL,0xF647CDEF2511932L,0x84EB4F5EF4193EDL,0x738E40AA018L};
public static final long[] CURVE_Pybab= {0x3282814364975C6L,0xBE24AD9CA88C0B0L,0x1969B0DAE613723L,0x24391C50369BE1AL,0x13658766896EL};
public static final long[] CURVE_Pybba= {0xBD339ABC1BF2D7CL,0xB713EF1B3AA2440L,0x6145A099D3837F1L,0xC9C5EE34A88F81BL,0x1FB0A8375143L};
public static final long[] CURVE_Pybbb= {0xAA9A0D1E51130A6L,0xEB9E708362553DAL,0xEDA47676A7C687EL,0x9E9A1777B2D6330L,0x193F378DC6ACL};
}

